package io.jee.runshan.utils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期工具类
 * 
 * @Created: 2015年2月6日
 * @Last_modified: 2015年2月6日 下午8:06:12
 * @Last_modified_by: ynshun
 * @Create_by: ynshun
 *
 */
public class DateUtils {

	/**
	 * 根据格式化返回制定日期对应的字符串
	 * 
	 * @Created: 2015年2月6日
	 * @Last_modified: 2015年2月6日 下午8:04:01
	 * @Last_modified_by: ynshun
	 * @Create_by: ynshun
	 * 
	 * @param date
	 * @param parten
	 * @return
	 */
	public static String getDate(Date date, String parten) {
		SimpleDateFormat format = new SimpleDateFormat(parten);
		return format.format(date);
	}

	/**
	 * 获取指定日期的小时
	 * 
	 * @Created: 2015年2月6日
	 * @Last_modified: 2015年2月6日 下午8:04:27
	 * @Last_modified_by: ynshun
	 * @Create_by: ynshun
	 * 
	 * @param date
	 * @return
	 */
	public static int getHour(Date date) {
		SimpleDateFormat format = new SimpleDateFormat("HH");
		return Integer.parseInt(format.format(date));
	}

	/**
	 * 获取指定日期的分钟
	 * 
	 * @Created: 2015年2月6日
	 * @Last_modified: 2015年2月6日 下午8:04:45
	 * @Last_modified_by: ynshun
	 * @Create_by: ynshun
	 * 
	 * @param date
	 * @return
	 */
	public static int getMinute(Date date) {
		SimpleDateFormat format = new SimpleDateFormat("mm");
		return Integer.parseInt(format.format(date));
	}

	/**
	 * 将指定日期字符串根据格式转换成日期
	 * 
	 * @Created: 2015年2月6日
	 * @Last_modified: 2015年2月6日 下午8:04:55
	 * @Last_modified_by: ynshun
	 * @Create_by: ynshun
	 * 
	 * @param date
	 * @param parten
	 * @return
	 */
	public static Date parseDate(String date, String parten) {
		try {
			SimpleDateFormat format = new SimpleDateFormat(parten);
			return format.parse(date);
		} catch (Exception e) {
			return null;
		}
	}

	/**
	 * 给一个日期加上指定的小时
	 * 
	 * @Created: 2015年2月6日
	 * @Last_modified: 2015年2月6日 下午8:05:31
	 * @Last_modified_by: ynshun
	 * @Create_by: ynshun
	 * 
	 * @param date
	 * @param hour
	 * @return
	 */
	public static Date addHour(Date date, int hour) {
		Calendar ca = Calendar.getInstance();
		ca.setTime(date);
		ca.add(Calendar.HOUR_OF_DAY, hour);
		return ca.getTime();
	}

	/**
	 * 给一个日期加上指定的天数
	 * 
	 * @Created: 2015年2月6日
	 * @Last_modified: 2015年2月6日 下午8:05:47
	 * @Last_modified_by: ynshun
	 * @Create_by: ynshun
	 * 
	 * @param date
	 * @param day
	 * @return
	 */
	public static Date addDay(Date date, int day) {
		Calendar ca = Calendar.getInstance();
		ca.setTime(date);
		ca.add(Calendar.DAY_OF_MONTH, day);
		return ca.getTime();
	}

}
